1. Field of the Invention
The present invention relates generally to an improved data processing system and in particular, to a computer implemented method and apparatus for transferring data. Still more particularly, the present invention relates to a computer implemented method, apparatus, and computer usable program code for adaptively controlling bandwidth used to transfer data.
2. Description of the Related Art
With the common use of networks and the Internet, communications in commerce has been revolutionized. Networks are commonly used to transfer data. Many distributed applications make use of large background transfers to improve the service quality. With these types of background transfers, users are not required to wait for these transfers to complete before performing other actions. A broad range of applications and services including, for example, data backup, prefetching, enterprise data distribution, Internet content distribution, and peer-to-peer storage employ background transfers. These and other types of applications increase network bandwidth consumption. Some of these services have potentially unlimited bandwidth demands in which the use of incrementally more bandwidth provides incrementally better service.
One problem with these types of applications is that most networks have only a limited amount of bandwidth available for transferring data. Some applications perform critical functions while others are non-critical. Typically, background transfers are non-critical and may use all available bandwidth slowing down critical network traffic.
Adaptive bandwidth controls have been employed to automatically adapt to network conditions to reduce the impact to the network. Currently, different adaptive bandwidth control processes and algorithms are employed to control the amount of bandwidth used by different applications to avoid congestion. Currently available adaptive bandwidth control processes take into account the network conditions at the local interface level, either on the server or client computer and are unable to take into account other conditions that may exist in the transfer of data.
Therefore, it would be advantageous to have an improved computer implemented method, apparatus, and computer usable program code to adaptively control bandwidth usage in transferring data.